package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class RHH_POSTU_CONVO_APRO 
{

    private int ID_USUARIO_LIKE;
    private int ID_CONVOCATORIA;
    private int ID_POSTULADO;
    private Date FECHA;
    private Conexion con = null;

    public RHH_POSTU_CONVO_APRO(Conexion con) {
        this.con = con;
    }

    public RHH_POSTU_CONVO_APRO(int ID_USUARIO_LIKE, int ID_CONVOCATORIA, int ID_POSTULADO) {
        this.ID_USUARIO_LIKE = ID_USUARIO_LIKE;
        this.ID_CONVOCATORIA = ID_CONVOCATORIA;
        this.ID_POSTULADO = ID_POSTULADO;
    }

    public boolean Insertar() throws SQLException {
        String consulta = "insert into BROKER.RHH_POSTU_CONVO_APRO (ID_USUARIO_LIKE, ID_CONVOCATORIA, ID_POSTULADO) VALUES (" + ID_USUARIO_LIKE + "," + ID_CONVOCATORIA + "," + ID_POSTULADO + ")";
        con.EjecutarSentencia(consulta);
        return true;
    }

    public List<RHH_POSTU_CONVO_APRO> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_POSTU_CONVO_APRO";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_POSTU_CONVO_APRO> lista = Cargar(rs);
        return lista;
    }
    public boolean Eliminar() throws SQLException {
        String consulta = "delete from BROKER.RHH_POSTU_CONVO_APRO where ID_POSTULADO = "+getID_POSTULADO()+" and ID_CONVOCATORIA = "+getID_CONVOCATORIA()+" and ID_USUARIO_LIKE="+getID_USUARIO_LIKE();
        con.EjecutarSentencia(consulta);
        return true;
    }
    
    public RHH_POSTU_CONVO_APRO Buscar(int id_post, int id_conv, int idusuario) throws SQLException {
        String consulta = "select * from BROKER.RHH_POSTU_CONVO_APRO where ID_POSTULADO = "+id_post+" and ID_CONVOCATORIA = "+id_conv+" and ID_USUARIO_LIKE="+idusuario;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_POSTU_CONVO_APRO> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }
    
    public List<RHH_POSTU_CONVO_APRO> Todos(int idconvo, int idpostu) throws SQLException {
        String consulta = "select * from BROKER.RHH_POSTU_CONVO_APRO where ID_CONVOCATORIA ";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_POSTU_CONVO_APRO> lista = Cargar(rs);
        return lista;
    }

    public List<RHH_POSTU_CONVO_APRO> Cargar(ResultSet rs) throws SQLException {
        List<RHH_POSTU_CONVO_APRO> lista = new ArrayList<RHH_POSTU_CONVO_APRO>();
        while (rs.next()) {
            RHH_POSTU_CONVO_APRO objeto = new RHH_POSTU_CONVO_APRO(con);
            objeto.setID_USUARIO_LIKE(rs.getInt("ID_USUARIO_LIKE"));
            objeto.setID_CONVOCATORIA(rs.getInt("ID_CONVOCATORIA"));
            objeto.setID_POSTULADO(rs.getInt("ID_POSTULADO"));
            objeto.setFECHA(rs.getDate("FECHA"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID_USUARIO_LIKE() {
        return ID_USUARIO_LIKE;
    }

    public void setID_USUARIO_LIKE(int ID_USUARIO_LIKE) {
        this.ID_USUARIO_LIKE = ID_USUARIO_LIKE;
    }

    public int getID_CONVOCATORIA() {
        return ID_CONVOCATORIA;
    }

    public void setID_CONVOCATORIA(int ID_CONVOCATORIA) {
        this.ID_CONVOCATORIA = ID_CONVOCATORIA;
    }

    public int getID_POSTULADO() {
        return ID_POSTULADO;
    }

    public void setID_POSTULADO(int ID_POSTULADO) {
        this.ID_POSTULADO = ID_POSTULADO;
    }

    public String getFECHA() {
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MMMM/yyyy hh:mm:ss");
        return sdf.format(FECHA);
    }

    public void setFECHA(Date FECHA) {
        this.FECHA = FECHA;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
